Skip to content

끝난 Step의 인자를 planning context에 넣기 (ADR-0065) - #118

Merged
SonAIengine merged 1 commit into
mainfrom
feat/repeat-process-feedback
Oct 27, 2026
Merged

SonAIengine merged 1 commit into
mainfrom
feat/repeat-process-feedback

Conversation

@SonAIengine

Copy link
Copy Markdown
Contributor

문제

같은 명령을 결과를 받고도 다시 실행하며 96 turn을 다 쓰는 반복. 실제 요청을 기록해 보니 steps에 실행 인자가 없어서 모델이 stdout이 어떤 명령의 결과인지 확인하지 못했다.

변경

  • PlanMaterializer::planned_arguments (기본 None) 추가. 끝난 Step의 정규화된 인자를 저장된 material recipe에서 다시 읽어 Step 요약에 arguments로 넣는다. digest가 다르거나 2 KiB를 넘으면 넣지 않는다.
  • CLI: workspace fs, process/execute 구현. journal·schema 변경 없음.

측정 (deepseek flash, main 대비)

  • T4: 96 call 소진 2/3 -> 2·4 call 완료
  • 검증 사례 H5: 96 call 소진 2/2 -> 2 call 완료 2/2
  • H3·H4: call 수 동일. T1·T6 통과.
  • 상세: docs/adr/0065-finished-step-arguments.md

검증

  • cargo test --workspace: 740개 통과, clippy·fmt 통과

🤖 Generated with Claude Code

- 같은 명령을 결과를 받고도 반복하는 원인: steps에 objective만 있고 실행 인자가 없어서
  모델이 stdout이 어떤 명령의 결과인지 확인하지 못했다(loopback proxy로 실제 요청 확인).
- PlanMaterializer::planned_arguments(기본 None)를 추가하고, 끝난 Step마다 저장된 material
  recipe에서 정규화된 인자를 다시 읽어 Step 요약의 capability 뒤에 arguments로 넣는다.
  digest가 planInputDigest와 다르거나 2 KiB를 넘으면(patch 본문 등) 넣지 않는다.
- CLI는 workspace fs와 process/execute를 구현했다. journal·schema 변경 없음.
- 재생 실험: 반복이 시작된 T4 context에서 완료 0/8 -> 8/8, T3 중간 context는 조기 완료 0/9.
- 실측 (main 대비): T4 96 call 소진 2/3 -> 2·4 call 완료, 검증 사례 H5 96 call 소진 2/2 ->
  2 call 완료 2/2(185초 -> 4초), H3·H4는 call 수 동일. T1·T6 통과.
- 테스트 740개 통과, clippy 경고 0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@SonAIengine
SonAIengine merged commit d974bba into main Oct 27, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant